package ScalaStudy.chapter05

object Test11_ControlAbstraction {
  def main(args: Array[String]): Unit = {


    /////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////   控制抽象   //////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////


    //1. 传值函数，传另一个函数返回值
println("(1)")

    def f0(a : Int) : Unit = {
      println("a:" + a)
      println("a:" + a)
    }

    def f1(): Int = {
      println("f1调用")
      2
    }

    f0(f1())

    //2. 传名函数，传递代码块
println("(3)")

    def f2(a : =>Int) : Unit = {            //a: => Int 表示a是一段代码块，代码块的返回值是Int
      println("a:" + a)
      println("a:" + a)
    }

    f2(10)                                   //10也是代码块

    println("==============我是分隔符=============")

    f2(f1())                                 //输出f1执行的结果

    println("==============我是分隔符=============")

    f2({
      println("这是一个代码块")
      666
    })

  }
}
